/**
 * <p>SystemName: WLBSNS</p>
 * <P>FileName: BaseDaoImpl.java</P>
 * <p>Description: 微乐帮社交网络 </p> 
 * <p>Copyright: Copyright (c) 2013 </p> 
 * <p>Company: </p> 
 * @author Theron 
 * @date 2013年11月10日 下午5:09:46 
 * @version V1.0 
 */
package com.wlbsns.framework.base;

import java.util.List;

import com.wlbsns.framework.db.DBHelper;
import com.wlbsns.framework.exception.SystemException;

/**
 * <p>FileName: BaseDaoImpl.java </p>
 * <p>PackageName: com.wlbsns.sys.dao </p>
 * <p>ClassName: BaseDaoImpl </p>
 * <p>Desciption: 系统dao层实现类</p>
 * @author Theron
 * @date 2013年11月10日 下午5:09:46
 */
public class BaseDaoImpl implements IBaseDao {
	DBHelper db = null;
	
	public BaseDaoImpl() {
		db = new DBHelper();
	}

	@Override
	public int addObj(Object obj) throws SystemException {
		return 0;
	}
	
	/**
	 * 
	 * <p>FileName: SysDaoImpl.java</p>
	 * <p>Function: 调用DBHelper的update方法实现数据库操作 </p>
	 * <p>Description: 重载addObj(Object obj)方法 </p>
	 * @date 2013年11月10日 下午4:38:28
	 * @author Theron
	 * @param sql
	 * @param objs
	 * @return 返回操作数据执行后的结果
	 * @throws SystemException
	 * <p>ReturnType: int</p>
	 */
	public int addObj(String sql,Object... objs) throws SystemException {
		return db.updateObjectInfo(sql, objs);
	}

	@Override
	public int updateObj(Object... objs) throws SystemException {
		return 0;
	}
	
	/**
	 * 
	 * <p>FileName: SysDaoImpl.java</p>
	 * <p>Function: 调用DBHelper的update方法实现数据库操作 </p>
	 * <p>Description: 重载updateObj(Object... objs)方法 </p>
	 * @date 2013年11月10日 下午4:40:50
	 * @author lanxzgsy
	 * @param sql
	 * @param objs
	 * @return 返回操作数据执行后的结果
	 * @throws SystemException
	 * <p>ReturnType: int</p>
	 */
	public int updateObj(String sql,Object... objs) throws SystemException {
		return db.updateObjectInfo(sql, objs);
	}

	@Override
	public int deleteObj(Object... objs) throws SystemException {
		return 0;
	}
	
	/**
	 * 
	 * <p>FileName: SysDaoImpl.java</p>
	 * <p>Function: 调用DBHelper的update方法实现数据库操作 </p>
	 * <p>Description: 重载deleteObj(Object... objs)方法 </p>
	 * @date 2013年11月10日 下午4:43:29
	 * @author lanxzgsy
	 * @param sql
	 * @param objs
	 * @return 返回操作数据执行后的结果
	 * @throws SystemException
	 * <p>ReturnType: int</p>
	 */
	public int deleteObj(String sql,Object... objs) throws SystemException {
		return db.updateObjectInfo(sql, objs);
	}

	@Override
	public <T> T getObjInfo(Class<T> clazz) throws SystemException {
		return null;
	}
	
	/**
	 * 
	 * <p>FileName: SysDaoImpl.java</p>
	 * <p>Function: 调用DBHelper的queryObjectInfo方法实现数据库操作  </p>
	 * <p>Description: 重载getObjInfo(Class<T> clazz)方法 </p>
	 * @date 2013年11月10日 下午4:44:26
	 * @author Theron
	 * @param sql
	 * @param clazz
	 * @return  返回操作数据执行后的结果
	 * @throws SystemException
	 * <p>ReturnType: T</p>
	 */
	public <T> T getObjInfo(String sql,Class<T> clazz) throws SystemException {
		return db.queryObjectInfo(sql, clazz);
	}

	@Override
	public <T> T getObjByCondition(Class<T> clazz, Object... objs)
			throws SystemException {
		return null;
	}
	
	/**
	 * 
	 * <p>FileName: SysDaoImpl.java</p>
	 * <p>Function: 调用DBHelper的queryObjectByCondition方法实现数据库操作  </p>
	 * <p>Description: 重载getObjInfo(String sql,Class<T> clazz, Object... objs)方法 </p>
	 * @date 2013年11月10日 下午4:46:17
	 * @author Theron
	 * @param sql
	 * @param clazz
	 * @param objs
	 * @return 返回操作数据执行后的结果
	 * @throws SystemException
	 * <p>ReturnType: T</p>
	 */
	public <T> T getObjByCondition(String sql,Class<T> clazz, Object... objs)
			throws SystemException {
		return db.queryObjectByCondition(sql, clazz, objs);
	}

	@Override
	public <T> List<T> getObjs(Class<T> clazz) throws SystemException {
		return db.queryObjects(clazz);
	}
}
